****************************************************************
******** Measuring the unmeasurable (May 2022 ver.)     ********
******** Published in August 2025				        ********
******** Scholar Datase							        ********
****************************************************************


/* Figure 4 */
use	Dataset_scholar.dta, clear

decode q5, gen(q5_str)
decode q6, gen(q6_str)
gen number = 1

preserve
collapse (count) number, by(q5_str)
replace number = 0 if _n == 1
replace q5_str = "Margin of error: > 50%" if _n == 1

gen order = _n
gen re_order = 1 if order == 7
replace re_order = 2 if order == 5
replace re_order = 3 if order == 4 
replace re_order = 4 if order == 2
replace re_order = 5 if order == 3
replace re_order = 6 if order == 1
replace re_order = 7 if order == 6

graph hbar (sum) number, over(q5_str, sort(re_order)) ytitle(# of respondents) title(Merchandise trade)
restore
	
preserve
collapse (count) number, by(q6_str)
drop if q6_str == ""

gen order = _n
gen re_order = 1 if order == 7
replace re_order = 2 if order == 4
replace re_order = 3 if order == 3 
replace re_order = 4 if order == 1
replace re_order = 5 if order == 2
replace re_order = 6 if order == 5
replace re_order = 7 if order == 6

graph hbar (sum) number, over(q6_str, sort(re_order)) ytitle(# of respondents) title(Illicit trade)
restore

****************************************************************
******** Measuring the unmeasurable (May 2022 ver.)     ********
******** Published in August 2025				        ********
******** Policy Official Datase							********
****************************************************************


/* Figure 5 */
use Dataset_expert.dta, clear

decode q5, gen(q5_str)
decode q6, gen(q6_str)
gen number = 1

preserve
collapse (count) number, by(q5_str)
replace number = 0 if _n == 1
expand 3 in 1
replace q5_str = "Precisely or very close" if _n == 1
replace q5_str = "Margin of error: > 50%" if _n == 6
replace q5_str = "Meaningless to collect such data" if _n == 7

gen order = _n
gen re_order = 1 if order == 1
replace re_order = 2 if order == 5
replace re_order = 3 if order == 4 
replace re_order = 4 if order == 2
replace re_order = 5 if order == 3
replace re_order = 6 if order == 6
replace re_order = 7 if order == 7

graph hbar (sum) number, over(q5_str, sort(re_order)) ytitle(# of respondents) title(Merchandise trade)
restore

preserve
collapse (count) number, by(q6_str)
replace number = 0 if _n == 1
replace q6_str = "Precisely or very close" if _n == 1

gen order = _n
gen re_order = 1 if order == 1
replace re_order = 2 if order == 5
replace re_order = 3 if order == 4 
replace re_order = 4 if order == 2
replace re_order = 5 if order == 3
replace re_order = 6 if order == 6
replace re_order = 7 if order == 7

graph hbar (sum) number, over(q6_str, sort(re_order)) ytitle(# of respondents)  title(Illicit trade)
restore


/* Figure 6 */
hist DVpre_importance, by(Treatment_precise, note("")) discrete barwidth(.8) xlabel(1 "Strongly agree" 2 "Somewhat agree" 3 "Neither" 4 "Somewhat disagree" 5 "Strongly disagree", angle(45)) xtitle("Using a (more precise) number is helpful" "because it increases the perceived importance of issues", size(Large))


/* Figure A.1 */
hist DVpre_competence, by(Treatment_precise, note("")) discrete barwidth(.8) xlabel(1 "Strongly agree" 2 "Somewhat agree" 3 "Neither" 4 "Somewhat disagree" 5 "Strongly disagree", angle(45)) xtitle("Using a (more precise) number is helpful" "because it increases the perceived competence", size(Large))



****************************************************************
******** Measuring the unmeasurable (June 2021 ver.)    ********
******** Published in August 2025				        ********
******** Public Opinion Datase							********
****************************************************************

use Dataset.dta, clear

/* Table A.2 */
tabstat female age income college know_pol know_econ republican, stat(n min max mean sd var)

/* Table A.4 */
bysort Treatment: sum female age income college know_pol know_econ republican 	

/* Figure A.2 and Figure A.3 */
preserve
collapse (mean) perc_accuracy_bi DV DV_alloc_i DV_alloc_m DV_cred DV_comp  ///
	(sd) sdDV=DV sdDV_alloc_i=DV_alloc_i sdDV_alloc_m=DV_alloc_m ///
	sdDV_cred=DV_cred sdDV_comp=DV_comp, by(Treatment) 

graph twoway bar DV Treatment if Treatment == 0 | Treatment == 1 | Treatment == 2, barwidth(0.7) || ///
	bar DV Treatment if Treatment == 3 | Treatment == 4 | Treatment == 5, barwidth(0.7) ///
	yscale(ra(1 4)) ylabel(1(1)4) xlabel(, valuelabel) ///
	ytitle("The UN should Pay more attention to the issue") /* Figure A.2 */

graph twoway bar DV_cred Treatment if Treatment == 0 | Treatment == 1 | Treatment == 2, barwidth(0.7) || ///
	bar DV_cred Treatment if Treatment == 3 | Treatment == 4 | Treatment == 5, barwidth(0.7) ///
	yscale(ra(1 4)) ylabel(1(1)4) xlabel(, valuelabel) ///
	ytitle("Is the statement credible?") /* Figure A.3 */
	
graph twoway bar DV_comp Treatment if Treatment == 0 | Treatment == 1 | Treatment == 2, barwidth(0.7) || ///
	bar DV_comp Treatment if Treatment == 3 | Treatment == 4 | Treatment == 5, barwidth(0.7) ///
	yscale(ra(1 4)) ylabel(1(1)4) xlabel(, valuelabel) ///
	ytitle("Is the UN competent?")  /* Figure A.3 */
restore


/* Table A.5 */
ologit  DV i.Treatment_precise
est sto p1
ologit  DV i.Treatment_rounded
est sto p2
ologit  DV_cred i.Treatment_precise
est sto p3
ologit  DV_cred i.Treatment_rounded
est sto p4
ologit  DV_comp i.Treatment_precise
est sto p5
ologit  DV_comp i.Treatment_rounded
est sto p6

/* Figure 7 */
coefplot p1 p2 p3 p4 p5 p6, drop(_cons) xline(0, lcolor(black)) ///
	xscale(ra(-1 1)) xlabel(-1(0.2)1) ///
	legend(order(2 "Importance (Precise)" 4 "Importance (Rounded)" ///
	6 "Credibility (Precise)" 8 "Credibility (Rounded)" ///
	10 "Competence (Precise)" 12 "Competence (Rounded)"))
	


/* Table A.6 */
ologit DV i.Treatment_number ///
	if Treatment == 0 | Treatment == 1 | Treatment == 2
est sto m1_m

ologit DV i.Treatment_number ///
	if Treatment == 3 | Treatment == 4 | Treatment == 5
est sto m1_i

ologit DV_cred i.Treatment_number ///
	if Treatment == 0 | Treatment == 1 | Treatment == 2
est sto m2_m
	
ologit DV_cred i.Treatment_number ///
	if Treatment == 3 | Treatment == 4 | Treatment == 5
est sto m2_i

ologit DV_comp i.Treatment_number ///
	if Treatment == 0 | Treatment == 1 | Treatment == 2
est sto m3_m	
	
ologit DV_comp i.Treatment_number ///
	if Treatment == 3 | Treatment == 4 | Treatment == 5
est sto m3_i
	
/* Figure A.4 */
coefplot m1_m m1_i m2_m m2_i m3_m m3_i, drop(_cons) xline(0, lcolor(black)) ///
	xscale(ra(-1 1)) xlabel(-1(0.2)1) ///
	legend(order(2 "Importance (Merchandise)" 4 "Importance (Illicit)" ///
	6 "Credibility (Merchandise)" 8 "Credibility (Illicit)" ///
	10 "Competence (Merrchandise)" 12 "Competence (Illicit)"))
